// Global vars
var ColumnModel;
var ListingEditorGrid;
var AreaForm;
var AreaCreateWindow;
//var txt_mensaje;
var editando=0;
var button_enviar;
var button_limpiar;
var button_imprimir_todo;
var button_imprimir_proveedor;
var DataStore;
var txt_nombre;
var	txt_descripcion;
var var_id_familia=-1;

Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.util.*',
    'Ext.state.*',
	'Ext.window.MessageBox',
    'Ext.tip.*'
]);

Ext.onReady(function(){

	Ext.QuickTips.init();
	
	Ext.define('modelo_columnas', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'Id_familia', type: 'int', mapping: 'Id_familia'},
			{name: 'nombre', type: 'string', mapping: 'nombre'},
			{name: 'descripcion', type: 'string', mapping: 'descripcion'}
		]
    });
	
	DataStore = new Ext.data.Store({
					model: 'modelo_columnas',
					id: 'DataStore',
					proxy: {
								type: 'ajax',
								url : 'db_familia.php',            
								actionMethods: {
											read: 'POST'
								},
								extraParams: {
											task: 'LISTING',
								},
								reader: {
											root: 'results',
											totalProperty: 'total',
											id: 'id'
								}
					}
	});
	
	DataStore.load({params: {start: 0, limit: 20}});
	
	function crearNuevoRegistro()
	{		
		  	if(isFormValid())
			{				
					Ext.Ajax.request({
									waitMsg: 'Espere...',
									url: 'db_familia.php',
									params: {
												task: "CREATE",
												txt_nombre: 		txt_nombre.getValue(),
												txt_descripcion: 	txt_descripcion.getValue(),
											}, 
										success: function(response)
										{
											var result=eval(response.responseText);
											switch(result)
											{
												case 1:
														Ext.MessageBox.alert('Registro OK','Se creo la familia');
														limpiarpantalla();
														break;
												default:
														Ext.MessageBox.alert('Error','No se puede enviar mensaje... Error en la BD');
														break;									 
											}
										},
									failure: function(response)
									{			  
										var result=response.responseText;
										Ext.MessageBox.alert('Error','No se pudo conectar a la base de datos. Intenta nuevamente');
									}
					});				
			}
			else
			{
				Ext.MessageBox.alert('Error','Error en los datos');
			}
	}
	
	
	function updateRegistro()
	{		
		  	if(isFormValid())
			{
					Ext.Ajax.request({
									waitMsg: 'Espere...',
									url: 'db_familia.php',
									params: {
												task: "UPDATE",
												Id_familia:			var_id_familia,
												txt_nombre: 		txt_nombre.getValue(),
												txt_descripcion: 	txt_descripcion.getValue()
											}, 
										success: function(response)
										{
											var result=eval(response.responseText);
											switch(result)
											{
												case 1:
														Ext.MessageBox.alert('Registro OK','Se Actualizo informacion de la familia');
														limpiarpantalla();
														break;
												default:
														Ext.MessageBox.alert('Error','No se tiene acceso... Error en la BD');
														break;									 
											}
										},
									failure: function(response)
									{			  
										var result=response.responseText;
										Ext.MessageBox.alert('Error','No se pudo conectar a la base de datos. Intenta nuevamente');
									}
					});
			}
			else
			{
				Ext.MessageBox.alert('Error','Error en los datos');
			}
	}
	
	
	function isFormValid()
	{
		return(	txt_descripcion.isValid() && 
				txt_nombre.isValid());
	}
	
	function limpiarpantalla()
	{
		txt_nombre.setValue("");
		txt_descripcion.setValue("");
		var_id_familia=-1;
		DataStore.load({params: {start: 0, limit: 20}});
	}
	
	function imprimir_lista(){      
            win = window.open('./print_familia.php','Lista de Clientes','height=400,width=600,resizable=1,scrollbars=1, menubar=1');
	}
	
	function imprimir_cliente(){
			if(var_id_familia!=-1)
			{
				win = window.open("print_familia_individual.php?nombre="+txt_nombre.getValue()+
																"&descripcion="+txt_descripcion.getValue(),																
									'Kardex','height=400,width=600,resizable=1,scrollbars=1, menubar=1');
			}
	}
	
	
	button_enviar = new Ext.Button({width: 100,text: 'Crear',tooltip: 'Crear',handler:crearNuevoRegistro}); 
	button_update = new Ext.Button({width: 100,text: 'Actualizar',tooltip: 'Actualizar Registro',handler:updateRegistro}); 
	button_limpiar = new Ext.Button({width: 100,text: 'Limpiar',tooltip: 'Limpiar pantalla',handler:limpiarpantalla});
	button_imprimir_proveedor = new Ext.Button({width: 110,text: 'Imprimir familia',tooltip: 'Imprimir familia',handler:imprimir_cliente}); 
	button_imprimir_todo = new Ext.Button({width: 100,text: 'Imprimir lista',tooltip: 'Imprimir lista',handler:imprimir_lista}); 
  	
    txt_nombre = new Ext.form.TextField
					({
							id: 			'txt_nombre',
							name:			'txt_nombre',
							fieldLabel: 	'Nombre',
							minLength: 		3,
							selectOnFocus:	true,
							blankText: 		'Nombre obligatorio',
							allowBlank: 	false,
							labelWidth:		160,
							width: 			300,
							tabIndex:		2,
					});
    
	txt_descripcion = new Ext.form.TextField
					({
							id: 			'txt_descripcion',
							name:			'txt_descripcion',
							fieldLabel:		'Descripcion',
							minLength: 		3,
							selectOnFocus: 	true,
							blankText: 		'Domicilio obligatorio',
							allowBlank: 	false,
							labelWidth:		160,
							width: 			400,
							tabIndex:		3,
					});
						
	});
	
	
	
	
  
	